﻿
//	------------------------------------------------------------------------------
//                                       _                          
//              _ __ ___   ___ _ __ ___ | |__  _ __ __ _ _ __   ___ 
//             | '_ ` _ \ / _ \ '_ ` _ \| '_ \| '__/ _` | '_ \ / _ \
//             | | | | | |  __/ | | | | | |_) | | | (_| | | | |  __/
//             |_| |_| |_|\___|_| |_| |_|_.__/|_|  \__,_|_| |_|\___|
//                                                     
//	------------------------------------------------------------------------------

#region - License -
//
//	------------------------------------------------------------------------------                                                   
//	         Copyright (c) 2010 Peter Vyvey (peter.vyvey@chiliware.be)
//	------------------------------------------------------------------------------
//
//
//	This file is part of CHILIWARE MEMBRANE.
//
//	CHILIWARE MEMBRANE is free software: you can redistribute it and/or modify
//	it under the terms of the GNU Lesser General Public License as published by
//	the Free Software Foundation, either version 3 of the License, or
//	(at your option) any later version.
//
//	CHILIWARE MEMBRANE is distributed in the hope that it will be useful,
//	but WITHOUT ANY WARRANTY; without even the implied warranty of
//	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//	GNU Lesser General Public License for more details.
//
//	You should have received a copy of the GNU Lesser General Public License
//	along with CHILIWARE MEMBRANE.  If not, see <http://www.gnu.org/licenses/>.
//
//
#endregion

#region - Changes -
//
//	peter.vyvey@chiliware.be		2010-08-10		Created
//
#endregion

#region - Using -

using System.Runtime.Serialization;
using Chiliware.Membrane.Model;

#endregion

namespace Chiliware.Membrane.Security.Authentication
{
    #region - Credential -

    /// <summary>
    /// User credential to log onto an <see cref="IApplicationModel"/> implementation.
    /// </summary>
	[DataContract(Namespace = Namespace.DATA_CONTRACT, Name = "Credential")]
    public class Credential
    {
        #region - Constructors -

        /// <summary>
        /// Default constructor.
        /// </summary>
        private Credential()
            : base() { }

        /// <summary>
        /// Constructor with parameters.
        /// </summary>
        /// <param name="login">The user login.</param>
        /// <param name="password">The user password.</param>
        public Credential(string login, string password) :
            base()
        {
            this.Login = login;
            this.Password = password;
        }

        /// <summary>
        /// Constructor with parameters.
        /// </summary>
        /// <param name="domainName">The domain name.</param>
        /// <param name="login">The user login.</param>
        /// <param name="password">The user password.</param>
        public Credential(string domainName, string login, string password)
            : this(login, password)
        {
            this.DomainName = domainName;
        }

        #endregion

        #region - Properties -

        /// <summary>
        /// The domain name.
        /// </summary>
		[DataMember]
        public string DomainName { get; private set; }

        /// <summary>
        /// The user login.
        /// </summary>
		[DataMember(IsRequired = true)]
        public string Login { get; private set; }

        /// <summary>
        /// The user password.
        /// </summary>
		[DataMember(IsRequired = true)]
        public string Password { get; private set; }

        #endregion
    }

    #endregion
}
